// interface IAnimal {
//   name: string;
//   eat(): void;
// }

// // implements IAnimal 
// class Animal {
//   readonly name: string;
//   constructor(name: string) {
//     this.name = name;
//   }
//   eat(): void {
//     console.log(this.name + " is eating");
//   }
//   getName(): string {
//     return this.name;
//   }
// }

// class Cat extends Animal {
//   constructor(name: string) {
//     super(name);
//   }
// }

// let cat = new Animal("cat");
// cat.eat();
// console.log(cat.getName());
// // cat.name = "dog"; // 报错，name是只读属性
